#! /bin/bash
. ./libs.sh

echo "$VIP"
echo "$CIDRLIST"
echo "$cilium_version"

cilium uninstall

cilium install --version=${cilium_version} \
    --set k8sServiceHost=${VIP} \
    --set ipam.operator.clusterPoolIPv4PodCIDRList="${CIDRLIST}" \
    --set kubeProxyReplacement=true \
    --set ipam.mode=kubernetes \
    --set bgpControlPlane.enabled=true \
    --set l2announcements.enabled=true \
    --set k8sClientRateLimit.qps=50 \
    --set k8sClientRateLimit.burst=100 \  \
    --set externalIPs.enabled=true \
    --set rollOutCiliumPods=true \
    --set bpf.masquerade=true \
    --set bpf.hostLegacyRouting=true \
    --set operator.replicas=2 \
    --set operator.prometheus.enabled=true \
    --set envoyConfig.enabled=true \
    --set encryption.enabled=true \
    --set encryption.type=wireguard \
    --set loadBalancer.l7.backend=envoy \
    --set endpointRoutes.enabled=true \
    --set envoy.enabled=true

# cillium hubble  ✅
# --set hubble.relay.enabled=true \
# --set prometheus.enabled=true \
# --set hubble.ui.enabled=true \
# --set hubble.ui.service.type="NodePort" \
# --set hubble.metrics.enabled="{dns,port-distribution,drop,tcp,flow,icmp,http}" \

# gatewayapi 取代ingress ✅

# --set gatewayAPI.enabled=true \

# ingress cilium 代替其他 ingress  ✅

# --set ingressController.enabled=true \
# --set ingressController.default=true \
# --set ingressController.defaultSecretName=${TLS} \
# --set ingressController.loadbalancerMode=shared \
# --set ingressController.secretsNamespace.create=false \

# 流量加密 ✅
#   --set encryption.enabled=true \
#   --set encryption.type=wireguard \

#dedicated

# ipam 模式 ✅
# --set ipam.mode=kubernetes \
# --set bgpControlPlane.enabled=true \

# --set loadBalancer.mode=dsr \
#  --set loadBalancer.acceleration=native \
# --set loadBalancer.l7.backend=envoy \
# --set envoyConfig.enabled=true \
# --set routingMode=native \
# --set ipam.mode=kubernetes

kubectl apply -f ip-pool.yaml
kubectl apply -f announce.yaml
